/* global chrome */

function simulateEnterKey() {
    const event = new KeyboardEvent('keydown', {
        key: 'Enter',
        code: 'Enter',
        keyCode: 13,  // 传统属性
        which: 13,    // 传统属性
        bubbles: true,
        cancelable: true
    });

    // 可指定目标元素触发，默认对document触发
    document.dispatchEvent(event);
}

function injectScript(fn, args) {
    const script = document.createElement("script");
    script.textContent = `(${fn})(${JSON.stringify(args)})`;
    (document.head || document.documentElement).appendChild(script);
    script.remove();
}

export function autoSearchPerson() {

    chrome.scripting.executeScript({
        target: { tabId: sender.tab.id },
        func: (xpath, value) => {
            const result = document.evaluate(
                xpath,
                document,
                null,
                XPathResult.FIRST_ORDERED_NODE_TYPE,
                null
            );
            if (result.singleNodeValue) {
                const input = result.singleNodeValue;
                input.value = value;
                input.dispatchEvent(new Event("input", { bubbles: true }));
                input.focus();
                ["keydown", "keypress", "keyup"].forEach(type => {
                    const e = new KeyboardEvent(type, {
                        key: "Enter",
                        code: "Enter",
                        keyCode: 13,
                        which: 13,
                        bubbles: true,
                        cancelable: true
                    });
                    input.dispatchEvent(e);
                });
            }
        },
        args: ["//div[@role='banner']//input", "football"]
    });

    // try {
    //     const xpath = "//div[@role='banner']//input";
    //     const value = "football";

    //     const result = document.evaluate(
    //         xpath,
    //         document,
    //         null,
    //         XPathResult.FIRST_ORDERED_NODE_TYPE,
    //         null
    //     );


    //     if (result.singleNodeValue) {
    //         const inputElement = result.singleNodeValue;
    //         console.log(inputElement, 'inputElement');





    //         // 1秒后执行填充操作
    //         setTimeout(() => {
    //             console.log('1秒延迟后开始填充输入框');

    //             // 输入值
    //             inputElement.value = value;

    //             // 触发 input 事件（让框架检测到值变化）
    //             inputElement.dispatchEvent(new Event('input', { bubbles: true }));
    //             inputElement.dispatchEvent(new Event('change', { bubbles: true }));

    //             // 聚焦
    //             inputElement.focus();

    //             // 模拟完整的回车按键过程
    //             ['keydown', 'keypress', 'keyup'].forEach(type => {
    //                 const event = new KeyboardEvent(type, {
    //                     key: 'Enter',
    //                     code: 'Enter',
    //                     keyCode: 13,
    //                     which: 13,
    //                     bubbles: true,
    //                     cancelable: true
    //                 });
    //                 inputElement.dispatchEvent(event);
    //             })

    //         }, 1000); // 1秒延迟


    //         // sendResponse({
    //         //     success: true,
    //         //     message: `成功找到输入框，1秒后将填入 "${value}"${shouldPressEnter ? '，1.2秒后按回车' : ''}`,
    //         //     element: {
    //         //         tagName: inputElement.tagName,
    //         //         type: inputElement.type,
    //         //         value: inputElement.value,
    //         //         xpath: xpath
    //         //     }
    //         // });
    //     } else {
    //         // sendResponse({
    //         //     success: false,
    //         //     message: `未找到匹配的输入框: ${xpath}`,
    //         //     xpath: xpath
    //         // });
    //     }
    // } catch (error) {
    //     console.error('填充输入框时出错:', error);
    //     // sendResponse({
    //     //     success: false,
    //     //     message: '操作失败: ' + error.message
    //     // });
    // }
}
